home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 16 / AMIGAplus Sonderheft 16 (1998)(ICP)(DE)[!].iso / pd / anwendungen / rtgmaster_dev / extradocs.txt < prev    next >
Text File  |  1998-02-16  |  10KB  |  190 lines

  1. Docs about rtgmaster PPC
  2. ========================
  3.  
  4. First of all: Sorry that the "real" Docs are not completely done yet :) Work is
  5. in Progress :)
  6.  
  7. As now PowerPC Boards are available for the Amiga Computers, it will be interesting
  8. of creating games that will run on these Boards. The problem is, the current
  9. software available for PPC Boards does not feature PPC Native Graphics Functions.
  10. rtgmaster PPC will support such functions.
  11.  
  12. Before i go into detail i have to tell some things about how the Amiga PowerPC
  13. Control Software works principially. Actually, there are TWO software systems,
  14. one called ppc.library being shipped with the Boards, and one called WarpUP
  15. being available as Freeware (Reminds a bit of CyberGraphX and Picasso96, doesn't
  16. it ?). If you ran a program that used ppc.library, and now want to run a WarpUP
  17. program, you have to reboot (and vice versa). I included the V27 version of
  18. rtgmaster (which was without PPC Code) so that people who use the ppc.library
  19. quite frequently, still can use rtgmaster.library (at least the 68k Part).
  20.  
  21. 68k and PPC part
  22. ================
  23.  
  24. New for both:
  25.  
  26. - Added RtgBobSystem (Soft-sprites...) Have a look at the example in the
  27.   Devdocs Directory (Thanks to Rady Marusa for both the Bob Functions and
  28.   the Demo :) )
  29. - Changed CopyRtgPixelArray (in a backward compatible way, to support AGA Support
  30.   without c2p...)
  31.  
  32.   * the Planar Copy under AGA is now fully functional (the function does Planar
  33.     Copy under AGA, Chunky Copy under GFX Board, so you can do AGA Support
  34.     without c2p, if you do not want c2p... you need two sets of graphics files
  35.     then... if you want to use c2p, use CopyRtgBlit instead, it does c2p for
  36.     AGA)
  37.   * Blit Width/Destination Width don't have to be the same any longer.
  38.     Destination Width/Height is always that of the Screen. Source Width
  39.     has to be the same like Destination Width, but it is possible to copy only
  40.     parts of the Buffer to the Destination, by using Source Offsets and
  41.     smaller Width/Height.
  42.  
  43. - Changed CopyRtgBlit (in a backward compatible way, due to user wishes... if you
  44.   don't need the new features you won't have to change your code !!!)
  45. - C Part of the thing is now StormC instead of SAS/C (more system-conform
  46.   Init-Code also...)
  47. - Fat/Mixed Binary (runs on PPC and on 68k Amigas !!!)
  48.  
  49. Masked Parameter:
  50.  
  51. 0: GfxBoard: Chunky Copy, AGA: c2p, Please use only Fullscreen c2p, not all c2p
  52.    Modules support Not-Fullscreen-c2p. To do Fullscreen c2p simply set All Offsets
  53.    to 0, all Width/Height to Screenwidth/Screenheight.
  54. 1: GfxBoard: Chunky Copy, No pixel will be overwritten with color 0. Not available
  55.    for AGA.
  56. 2: The same like 0, but also works with Fastram Buffers. Performs Chunky-Copy
  57.    for both GFX Boards and AGA.
  58. 3: The same like 1, but also works with Fastram Buffers. Performs Chunky-Copy with
  59.    color-0-restriction for both GFX Boards and AGA.
  60.  
  61. - rtg_MouseMove sends IDCMP_MOUSEMOVE messages additionally
  62. - rtg_DeltaMove sends IDCMP_MOUSEMOVE messages with Delta-Values. For EGS, which
  63.   does not support this feature, the same like rtg_MouseMove.
  64. - rtg_Workbench: If you give this tag a parameter of LUT8 (512) rtgmaster opens
  65.   a Workbench Window instead of a screen (slower, and on EGS it still opens a
  66.   screen... on all other WB Emulations and ECS/AGA it works, though). Possibly
  67.   later versions will support other Color Depths, also (currently only 1-8 Bit
  68.   is supported).
  69. - rtg_PubScreenName: If used together with rtg_Workbench, the WB Window opens
  70.   on a Public Screen, instead of the WB. Locking the PubScreen is not needed,
  71.   rtgmaster does this already.
  72.  
  73. Note: rtg_MouseMove/rtg_DeltaMove do not work with the PPC Versions of the Message
  74. functions. Use the 68k Functions with Context-Switch, if you need these tags.
  75.  
  76. Also the PPC Versions do not send the timer values for IntuiMessages...
  77.  
  78. The ppc.library<->WarpUP Discussion
  79. ===================================
  80.  
  81. I am very sorry that i have to tell about this whole sad discussion. But i fear
  82. i HAVE to tell some words about it... I am sorry to Phase 5 that this text won't
  83. let their software look good. But as to game coding (what rtgmaster is intended
  84. mainly for) i am interest in EFFICIENCY. And for that i have to use WarpUP. Like
  85. most other PPC Software products that are in developpement do...
  86.  
  87. Now, why does WarpUP exist at all ? Why a second software ? (I tell at this place,
  88. that rtgmaster PPC uses WarpUP, like probably ANY bigger PPC Application asides
  89. from Wildfire does).
  90.  
  91. - A contextswitch always starts a completely new task on ppc.library
  92. - The 68k<->PPC Switches on ppc.library are slower than on WarpUP.
  93. - ppc.library Software is quite complicated to code... even if it is only a
  94.   "Hello, World" program. More complicated programs are VERY complicated to do.
  95. - Only the WarpUP-using Compiler StormC deals with Context-Switches AUTOMATICALLY.
  96. - Overall, the performance of WarpUP is much better, the usability too.
  97. - AFAIK, only WarpUP features Fat Binary, Mixed Binary and PPC Shared Libs.
  98.   (At least for the Version of ppc.library i saw last, this was true). I need
  99.   all these three features for rtgmaster PPC.
  100. - WarpUP uses the AmigaDOS Executable Format, while ppc.library uses the Format
  101.   of the Linux OS
  102. - I had really BAD experiences with the stability of ppc.library... sometimes
  103.   a program suddently stopped to work. Partially this seems to have to do
  104.   with certain programs having problems with ppc.library updates, sometimes
  105.   they failed without an update... one more reason for WarpOS...
  106.  
  107. I have to tell here, we have REALLY to be grateful to Phase 5 for creating the
  108. PowerUP Hardware. But they should have left the software part to Haage&Partner.
  109. Sorry, if i tell this that bluntly. Especially if you want to code a performance
  110. intensive game i only can recommend you to use WarpUP. Not only will the speed be
  111. better. You also will need much less knowledge to create PPC Applications. You can
  112. even create applications that run on both 68k and PPC very easy. Portability is the
  113. key :)
  114.  
  115. Sometimes it is said, that ppc.library would support Multiprocessoring, what WarpUP
  116. would not. This is wrong. WarpUP supports Multiprocessoring (but you have to create
  117. the PROTOCOL for the CPU communication yourselves). This is, because with the given
  118. PowerUP Hardware, running PPC and 68k parallel will SLOW DOWN your program, not SPEED
  119. UP it. With future Hardware that might be different, but not with the existing
  120. PowerUP Boards. And Sam Jordan, the coder of WarpUP already said, he would enhance
  121. the Multiprocessoring support in case such hardware appears.
  122.  
  123. Also Haage&Partner will support ANY Hardware manufacturer with WarpUP who wants to
  124. do a PPC Board. Not only the Phase 5 Hardware.
  125.  
  126. So, as rtgmaster PPC uses WarpUP, what does this mean ?
  127.  
  128. If you intend to use ppc.library, you should install the 68k Version of rtgmaster.
  129. Programs using the PPC functions of rtgmaster won't run then, of course. Alternatively
  130. you can simply install WarpUP V7. It provides compatibility with ppc.library, but it
  131. uses the same slow and problematic functions like ppc.library (because of that it is
  132. compatible...). When i tested rtgmaster PPC with powerpc.library V7 and ppc.library,
  133. though, i got a crash at startup, probably caused by the way ELF-Format does stack-handling,
  134. like i was told. I am not sure, if this is fixed with ppc.library V45, but to tell
  135. the truth, i don't care that much. If it does not run with ppc.library, try rtgmaster V27.
  136. Most new features of rtgmaster V30 are PPC-features, which are only usable with WarpUP.
  137.  
  138. How does the concept of rtgmasterPPC work ?
  139. ===========================================
  140.  
  141. rtgmaster PPC is a Mixed Shared Library, which means, that it has functions in 68k,
  142. and functions in PPC. On a 68k system, you should ONLY use the 68k functions, on a
  143. PowerUP system both can be used. Every rtgmaster function exists in both 68k and PPC,
  144. but not all of them are PPC Native. Some of those PPC functions (currently nearly all)
  145. simply call a Context-Switch and execute the function on 68k.
  146.  
  147. You SHOULD USE the function CheckPPCCommand() to find out which functions are available
  148. in "true PPC code".
  149.  
  150. To use the functions, for 68k you have to use the protos and the pragma-file (for
  151. SAS/C: pragmas-file). For PPC you only have to include the protos-File (works only
  152. with StormC PowerUP, in case other compilers supporting WarpUP appear, they will
  153. be supported, too, of course. And it works also with StormPowerASM, of course, and
  154. shold run with pASM - did not try it yet, just downloaded it- .
  155.  
  156. List of true PPC functions:
  157.  
  158. CS means that the PPC function exists, but is not a true PPC function. Instead
  159. it performs a context-switch to the 68k function. - means that not even this
  160. exists. I will fix this as soon as possible. Remember, this is yet a preview only.
  161. In case of - an empty function will be performed.
  162.  
  163. rtgP96.library       rtgCGX.library       rtgAMI.library       rtgEGS.library
  164. ==============       ==============       ==============       ==============
  165.  
  166. PPCCCopyRtgBlit      PPCCopyRtgBlit       PPCCopyRtgBlit       -
  167. PPCLockRtgScreen     PPCLockRtgScreen     PPCLockRtgScreen     -
  168. PPCUnlockRtgScreen   PPCUnlockRtgScreen   PPCUnlockRtgScreen   -
  169. PPCGetBufAdr         PPCGetBufAdr         PPCGetBufAdr         -
  170. PPCCopyRtgPixelArray PPCCopyRtgPixelArray -                    -
  171. PPCRtgSetTextMode    PPCRtgSetTextMode    PPCRtgSetTextMode    -
  172. PPCRtgSetTextModeRGB PPCRtgSetTextModeRGB PPCRtgSetTextModeRGB -
  173. PPCRtgInitRDCMP      PPCRtgInitRDCMP      PPCRtgInitRDCMP      -
  174. PPCopyRtgBlit        PPCCopyRtgBlit       PPCCopyRtgBlit       -
  175. PPCRtgScreenAtFront  PPCRtgScreenAtFront  PPCRtgScreenAtFront  -
  176. PPCDrawRtgLine       PPCDrawRtgLine       -                    -
  177. PPCWriteRtgPixel     PPCWriteRtgPixel     -                    -
  178. PPCRtgWaitRDCMP      PPCWaitRDCMP         PPCWaitRDCMP         -
  179. PPCFillRtgRect       PPCFillRtgRect       CS                   -
  180. PPCFillRtgRectRGB    PPCFillRtgRectRGB    No 24 Bit for AGA    -
  181. PPCWriteRtgPixelArrayPPCWriteRtgPixelArray-                    -
  182. PPCCallRtgC2P        PPCCallRtgC2P        PPCCallRtgC2P        -
  183.  
  184. All other PPC functions simply perform a contextswitch to 68k.
  185.  
  186. Steffen Haeuser
  187.  
  188.  
  189.  
  190.